package com.congee02.thread;

/**
 * @author congee02
 * @date 1/31/2023 5:08 PM
 */
public class ThreadStartRunCompareTest {

    public static void main(String[] args) {

        CommonThread thread = new CommonThread();

        // run() 是个普通的方法，没有启动一个线程，
        // 而是在当前线程启动，run() 方法执行完后，才继续向下执行
        thread.run();
        System.out.println("=====Thread#run() done=====");
        
        // start(): 创建一个线程，在新的线程上执行 run() 方法
        thread.start();
        for (int i =  0 ; i < 5 ; i ++ ) {
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            printThreadName();
        }
        
    }

    private static void printThreadName() {
        System.out.println(Thread.currentThread().getName());
    }
    
    private static class CommonThread extends Thread {
        
        @Override
        public void run() {
            try {
                for (int i = 0 ; i < 10 ; i ++ ) {
                  printThreadName();
                  sleep(1000);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    
}
